04. OOP Syntax
Object-Oriented Programming Syntax
In this video, you'll see what a class and object look like in Python. In the next section, you'll have the chance to play around with the code. And then you will write your own class.
Object Oriented Programming Syntax
Function vs Method
In the video above at 1:44, the dialogue mistakenly calls init a function rather than a method. Why is init not a function?
A function and a method look very similar. They both use the
def
keyword. They also have inputs and return outputs. The difference is that a method is inside of a class whereas a function is outside of a class.
What is self?
If you instantiate two objects, how does Python differentiate between these two objects?
shirt_one = Shirt('red', 'S', 'short-sleeve', 15)
short_two = Shirt('yellow', 'M', 'long-sleeve', 20)
That's where
self
comes into play. If you call the
change_price
method on shirt_one, how does Python know to change the price of shirt_one and not of shirt_two?
shirt_one.change_price(12)
Behind the scenes, Python is calling the
change_price
method:
def change_price(self, new_price):
self.price = new_price
Self
tells Python where to look in the computer's memory for the shirt_one object. And then Python changes the price of the shirt_one object. When you call the
change_price
method,
shirt_one.change_price(12)
,
self
is implicitly passed in.
The word
self
is just a convention. You could actually use any other name as long as you are consistent; however, you should always use
self
rather than some other word or else you might confuse people.